home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / ms_dos / cd_lib / cd_rom.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-07-08  |  5.5 KB  |  185 lines

  1. /*
  2.  *        CD-ROM BOIS library for TOWNS
  3.  *            ver 1.0 last up-date 93/2/25    by Shinwa
  4.  */
  5.  
  6. struct TIMEADRS {
  7.     char min;
  8.     char sec;
  9.     char frame;
  10. };
  11.  
  12. /* CD-ROM BIOS ERROR Information */
  13. #define CDERR0    0x01    /* drive not ready */
  14. #define CDERR1    0x02    /* parameter error */
  15. #define CDERR2    0x04    /* drive not exist */
  16. #define CDERR3    0x08    /* abort Please retry */
  17. #define CDERR4    0x10    /* media error */
  18. #define CDERR5    0x20    /* hard error */
  19. #define CDERR7    0x80    /* media exchanged */
  20. #define DEVERR    0x100    /* irregular devece number */
  21. #define DEVPLY    0x102    /* now cd-da playing */
  22. #define DEVPAUSE    0x104    /* already cd stopped */
  23. #define DEVNPAUSE    0x108    /* cd not stop */
  24.  
  25.  
  26. /* ドライブステータス情報の読み取り */
  27. /*
  28.  * decice_no: device number (Towns CD-ROM -> 0)
  29.  * return: 0 -> 正常終了, 0以外 -> エラー
  30.  *           sector_size <- 2048 , 2336 or 2340 (sector size)
  31.  *           sector_max <- 最大論理セクタ数
  32.  */
  33. int cdr_status(int device_no, int *sector_size, long int *sector_max);
  34.  
  35. /* ドライブモードの読み取り */
  36. /*
  37.  * decice_no: device number (Towns CD-ROM -> 0)
  38.  * return: 0 -> 正常終了, 0以外 -> エラー
  39.  *           sector_size <- 2048 , 2336 or 2340 (bytes / sector)
  40.  */
  41. int cdr_rdrvmd(int device_no, int *sector_size);
  42.  
  43. /*   CD-ROM ドライブの回転停止時間の設定  */
  44. /*   return  0     -> 正常終了
  45.  *           0以外 -> エラー
  46.  *             注意!! 次のアクセス後有効になります.
  47.  */
  48. int cdr_stptime(int dev_no, int stop_time);
  49.  
  50. /* コンパクト情報の読み取り */
  51. /*
  52.  * decice_no:   device number (Towns CD-ROM -> 0)
  53.  * cd_type:     1 -> CD-DA, 2 -> data, 3 -> CD-DA+data
  54.  * start_track: 先頭トラック(曲)番号
  55.  * end_track:   最終トラック(曲)番号
  56.  * struct TIMEADRS {
  57.  *     char   min;
  58.  *     char   sec;
  59.  *     char   frame;
  60.  * } *track_times,  各トラック毎の演奏時間(最大99曲分必要)
  61.  * *disk_all_time; ディスク内の演奏時間
  62.  * 曲の最後まで演奏する場合は,終了時間にディスク内演奏時間-1を設定する.
  63.  * return: 0 -> 正常終了, 0以外 -> エラー
  64.  */
  65. int cdr_cdinfo(int device_no, int *cd_type, int *start_track, int *end_track,
  66.               struct TIMEADRS track_times[], struct TIMEADRS *disk_all_time);
  67.  
  68. /* ドライブモードの設定 */
  69. /*
  70.  * decice_no:   device number (Towns CD-ROM -> 0)
  71.  * sector_size: セクターサイズ(2048, 2336, or 2340)
  72.  * return: 0 -> 正常終了, 0以外 -> エラー
  73.  */
  74. int cdr_sdrvmd(int device_no, int sector_size);
  75.  
  76. /* シリンダー0へのシーク */
  77. /*
  78.  * decice_no:   device number (Towns CD-ROM -> 0)
  79.  * return: 0 -> 正常終了, 0以外 -> エラー
  80.  */
  81. int cdr_restore(int device_no);
  82.  
  83. /* データの読み取り(論理セクタ指定) */
  84. /*
  85.  * device_no:   device number (Towns CD-ROM -> 0)
  86.  * sector_number:     論理セクタ番号
  87.  * buffer: 転送アドレス
  88.  * count:   読み込みセクタ数
  89.  * return: 0 -> 正常終了, 0以外 -> エラー
  90.  */
  91.  
  92. int cdr_read(int device_no, long int sector_number, char *buffer, unsigned int count);
  93.  
  94. int cdr_read2(int device_no, long int sector_number, char *buffer, unsigned int count);
  95.  
  96. /* 指定位置へのシーク(論理セクタ指定) */
  97. /*
  98.  * decice_no:   device number (Towns CD-ROM -> 0)
  99.  * sector_number: 論理セクター番号
  100.  * return: 0 -> 正常終了, 0以外 -> エラー
  101.  */
  102. int cdr_seek(int device_no, long int sector_number);
  103.  
  104. /* データの読み取り(時間指定) */
  105. /*
  106.  * device_no:   device number (Towns CD-ROM -> 0)
  107.  * time:     時間
  108.  * buffer: 転送アドレス
  109.  * count:   読み込みセクタ数
  110.  * return: 0 -> 正常終了, 0以外 -> エラー
  111.  */
  112.  
  113. int cdr_tread(int device_no, struct TIMEADRS *time, char *buffer, unsigned int count);
  114.  
  115. int cdr_tread2(int device_no, struct TIMEADRS *time, char *buffer, unsigned int count);
  116.  
  117. /* 指定位置へのシーク(時間指定) */
  118. /*
  119.  * decice_no:   device number (Towns CD-ROM -> 0)
  120.  * time: 時間
  121.  * return: 0 -> 正常終了, 0以外 -> エラー
  122.  */
  123. int cdr_tseek(int device_no, struct TIMEADRS *time);
  124.  
  125. /* 音楽演奏スタート(時間指定) */
  126. /*
  127.  * decice_no:   device number (Towns CD-ROM -> 0)
  128.  * start_time: 演奏開始時間
  129.  * end_time: 演奏終了時間
  130.  * return: 0 -> 正常終了, 0以外 -> エラー
  131.  */
  132. int cdr_mtplay(int device_no, struct TIMEADRS *start_time, struct TIMEADRS *end_time);
  133.  
  134. /* 音楽演奏情報の読み取り(時間指定) */
  135. /*
  136.  * decice_no:   device number (Towns CD-ROM -> 0)
  137.  * start_time: 演奏開始時間
  138.  * end_time: 演奏終了時間
  139.  * return: 0 -> 正常終了, 0以外 -> エラー
  140.  */
  141. int cdr_rmtplay(int device_no, struct TIMEADRS *start_time, struct TIMEADRS *end_time);
  142.  
  143. /* 音楽演奏ストップ */
  144. /*
  145.  * decice_no:   device number (Towns CD-ROM -> 0)
  146.  * return: 0 -> 正常終了, 0以外 -> エラー
  147.  */
  148. int cdr_mstop(int device_no);
  149.  
  150. /* 音楽演奏状態の読み取り(時間指定) */
  151. /*
  152.  * decice_no:   device number (Towns CD-ROM -> 0)
  153.  * status: 演奏状態 1 -> 演奏中
  154.  * music_num: 現在演奏中の曲番号
  155.  * track_time: トラック内演奏時間
  156.  * disk_time: ディスク内演奏時間
  157.  * return: 0 -> 正常終了, 0以外 -> エラー
  158.  */
  159. int cdr_mphase(int device_no, int *status, int *music_num, struct TIMEADRS *track_time, struct TIMEADRS *disk_time);
  160.  
  161. /* 音楽演奏一時停止 */
  162. /*
  163.  * decice_no:   device number (Towns CD-ROM -> 0)
  164.  * return: 0 -> 正常終了, DEVPAUSE -> 既に停止中, それ以外 -> エラー
  165.  */
  166. int cdr_pause(int device_no);
  167.  
  168. /* 音楽演奏一時停止解除 */
  169. /*
  170.  * decice_no:   device number (Towns CD-ROM -> 0)
  171.  * return: 0 -> 正常終了, DEVNPAUSE -> 停止状態ではない, それ以外 -> エラー
  172.  */
  173. int cdr_continue(int device_no);
  174.  
  175. /* 音楽演奏スタート(時間指定 リピート回数指定) */
  176. /*
  177.  * decice_no:   device number (Towns CD-ROM -> 0)
  178.  * start_time: 演奏開始時間
  179.  * end_time: 演奏終了時間
  180.  * count: リピート回数
  181.  * return: 0 -> 正常終了, 0以外 -> エラー
  182.  */
  183. int cdr_mtrplay(int device_no, struct TIMEADRS *start_time, struct TIMEADRS *end_time, unsigned char count);
  184.  
  185.